package com.gobang.domain.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 用户登录响应视图对象
 * 用于返回登录成功后的用户信息和认证Token
 * 
 * @author System
 * @since 1.0.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class LoginResponseVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * JWT认证Token
     */
    private String token;

    /**
     * 用户基础信息
     */
    private UserInfo userInfo;

    /**
     * Token过期时间（秒）
     */
    private Long expiresIn;

    /**
     * 用户信息内部类
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class UserInfo implements Serializable {
        
        private static final long serialVersionUID = 1L;
        
        /**
         * 用户ID
         */
        private Long id;
        
        /**
         * 用户名
         */
        private String username;
        
        /**
         * 当前积分
         */
        private Integer currentScore;
        
        /**
         * 总比赛场数
         */
        private Integer totalGames;
        
        /**
         * 获胜场数
         */
        private Integer winGames;
    }
} 